No domínio dos sistemas computacionais, concorrência em nível de aplicação é o sobreposição deliberada de fluxos lógicos de controle para melhorar o desempenho e a responsividade. É uma abstração funcional: um programa é dividido em tarefas independentes que podem ser intercaladas ou executadas em paralelo.
1. A Taxonomia da Concorrência
Os desenvolvedores geralmente escolhem entre três mecanismos fundamentais para gerenciar esses fluxos concorrentes:
- Processos: Alta isolamento com espaços de endereçamento separados; exige IPC mediado pelo kernel.
- Multiplexação de Entrada/Saída: Um único fluxo trocando manualmente entre eventos "prontos" (máquinas de estado).
- Threads: Fluxos leves compartilhando um único espaço de endereçamento virtual para troca fácil de dados.
2. Execução Lógica versus Física
Embora todos programas paralelos são concorrentes, nem todos os programas concorrentes são paralelos. O paralelismo é a execução física de fluxos em núcleos de hardware separados. A concorrência é o design lógico que permite que essa execução ocorra.
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>